package com.forenow.demo.demo24;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

/**
 * 文件与流（I/O流)：  I表示Input 输入流      O表示Output输出流
 * 作用：主要作用就是对文件的读（Input）/写(Output)操作
 * 流的分类：
 *  1.字节流/字符流
 *      1.1凡是以InputStream/OutputStream结尾的都是字节流（图片）  所有字节流的根父类InputStream/OutputStream
 *      1.2凡是以Reader/Writer结尾的都是字符流（文本文件）             所有字符流的根父类Reader/
 *
 *  2.节点流/处理流
 *      2.1节点流：直接关联数据源（要读写的文件）的就是节点流
 *      2.2处理流：相当于对节点流的功能的增强（提高读写文件的效率）
 */

 public class IOdemo {
    public static void main(String[] args) {
        try {
            //创建一个文件输入流，可对文件进行读操作，FileInputStream是一个节点流
            FileInputStream fis=new FileInputStream("test.jpg");
            //目标文件
            FileOutputStream fos=new FileOutputStream("new_test.jpg");
            //读取源文件当中的一个字节
            int read = fis.read();
            while (read!=-1){
                //将以上读取到的read字节写到目标文件当中
                fos.write(read);
                //读取下一个字节
                read=fis.read();
            }
            //释放资源
            fos.close();
            fis.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
